//package com.example.shiwu;
//
//import static com.example.shiwu.util.ContextVariable.DOWN_NAME;
//import static com.example.shiwu.util.FileDownUtil.getInternalFilesNew;
//import static com.example.shiwu.util.TcpService.TAG;
//
//import android.annotation.SuppressLint;
//import android.content.Context;
//import android.content.res.Resources;
//import android.database.Cursor;
//import android.database.sqlite.SQLiteDatabase;
//import android.os.Bundle;
//import android.util.Log;
//import android.view.View;
//import android.widget.Button;
//import android.widget.CheckBox;
//import android.widget.ImageView;
//import android.widget.ListView;
//import android.widget.TextView;
//import android.widget.Toast;
//
//import androidx.appcompat.app.AppCompatActivity;
//
//import com.example.shiwu.adapter.SendReceiveAdapter;
//import com.example.shiwu.db.model.Arrange;
//import com.example.shiwu.db.model.Device;
//import com.example.shiwu.db.model.Items;
//import com.example.shiwu.db.model.Sends;
//import com.example.shiwu.db.vo.SendVo;
//import com.example.shiwu.manager.DatabaseHelper;
//import com.example.shiwu.service.ArrangeService;
//import com.example.shiwu.service.ItemsService;
//import com.example.shiwu.service.SendsService;
//import com.example.shiwu.util.FileDownUtil;
//import com.scwang.smartrefresh.layout.api.RefreshLayout;
//import com.scwang.smartrefresh.layout.listener.OnLoadMoreListener;
//import com.scwang.smartrefresh.layout.listener.OnRefreshListener;
//
//import java.io.File;
//import java.io.IOException;
//import java.text.SimpleDateFormat;
//import java.util.ArrayList;
//import java.util.Arrays;
//import java.util.List;
//import java.util.Map;
//
//public class SendReceiveListBeforDianJIActivity extends AppCompatActivity implements SendReceiveAdapter.MyClickListener {
//
//    private CheckBox checkBox,send_items_checkbox;
//    private RefreshLayout mRefreshLayout;
//    private boolean checkSta = false;
//    public TextView title_text, title_seting,did;
//    public ImageView title_back;
//    private Context myContent;
//    private ListView listView;
//    private SendReceiveAdapter myAdapter;
//    private List<Map<String, Object>> listitem;
//    private ItemsService itemsService;
//    private SendsService sendService;
//    private ArrangeService arrangeService;
//    private ArrayList<SendVo> sendLisAll = null;
//    private Button expor_btn,send_del_btn;
//    private int currentPage = 1;
//    private int pageSize = 2;
//    private int totalSize = 0;
//    private String ids = "";
//    private List<Integer> idlis = new ArrayList<Integer>();
//    private DatabaseHelper dbHelper;
//    private Button allCheak;
//    private String[] freqData, modeData, freqFilterData, repeatData, valtageData;
//
//    @SuppressLint("MissingInflatedId")
//    @Override
//    protected void onCreate(Bundle savedInstanceState) {
//        super.onCreate(savedInstanceState);
//        setContentView(R.layout.send_receive_list);
//        myContent = this;
//        title_back = findViewById(R.id.title_back);
//        title_text = findViewById(R.id.title_text);
//        //send_items_checkbox = findViewById(R.id.send_items_checkbox);
//       // allCheak = findViewById(R.id.allCheak);
//        sendLisAll = new ArrayList<SendVo>();
//        sendService = new SendsService();
//        arrangeService = new ArrangeService();
//        allCheak = findViewById(R.id.allCheak);
//        send_del_btn = findViewById(R.id.item_del_btn);
//        title_text.setText("发射接收记录");
//        Resources res = getResources();
//        modeData = res.getStringArray(R.array.modeData);
//        freqData = res.getStringArray(R.array.freqData);
//        repeatData = res.getStringArray(R.array.repeatCount);
//        valtageData = res.getStringArray(R.array.valtageData);
//        dbHelper = new DatabaseHelper(this);
////        title_seting.setText("全选");
////        send_items_checkbox.setOnClickListener(new View.OnClickListener() {
////            @Override
////            public void onClick(View view) {
////                if (checkSta) {
////                    btnNoList();
////                    title_seting.setText("全选");
////                } else {
////                    btnSelectAllList();
////                    title_seting.setText("全不选");
////                }
////
////            }
////        });
//        title_back.setOnClickListener(new View.OnClickListener() {
//            @Override
//            public void onClick(View view) {
//                SendReceiveListBeforDianJIActivity.this.finish();
//            }
//        });
//
//        this.getDeviceLisAll();
//
//        send_del_btn.setOnClickListener(new View.OnClickListener() {
//            @Override
//            public void onClick(View v) {
//                System.out.println("——————————————删除——————————————————");
//                String ids1 = ids.substring(0,ids.length()-1);
//                List<String> idLis = new ArrayList<>();
//                if(ids1.length()>1){
//                    String[] idLis1 = ids1.split(",");
//                    idLis.addAll(Arrays.asList(idLis1));
//                }else{
//                    idLis.add(ids1);
//                }
//
//                if(idLis.size()>0){
//                    for (int i = 0; i < idLis.size(); i++) {
//                        Sends sen = new Sends();
//                        sen.setId(Integer.parseInt(idLis.get(i)));
//                        List<Sends> svlis = sendService.getSends(sen);
//                        if(svlis.size()>0){
//                            if(idLis.get(i).equals(String.valueOf(svlis.get(0).getId()))){
//                                int itemId = svlis.get(0).getItemId();
//                                int sId = svlis.get(0).getId();
//                                Sends sen1 = new Sends();
//                                sen1.setStatus(1);
//                                sen1.setId(sId);
//                                Sends sen2 = new Sends();
//                                sen2.setId(sId);
//                                Boolean bool = sendService.updade(sen1,sen2);//先删表数据在删除文件
//                                if(bool){
//                                    String uid = svlis.get(0).getUid();
//                                    String fileName = String.valueOf(itemId)+"-"+uid+".cvs";
//                                    Boolean bool1 = FileDownUtil.deleteSingleFile(FileDownUtil.DOWN_NAME+fileName);
//                                    if(bool1){
//                                        updataData();
//                                        //refresh();
//                                        //SendReceiveListActivity.this.refresh();
//                                        Toast.makeText(myContent, "删除成功！", Toast.LENGTH_SHORT).show();
//                                    }else {
//                                        updataData();
//                                        Toast.makeText(myContent, "删除成功！", Toast.LENGTH_SHORT).show();
//                                    }
//                                }
//
//                            }
//
//                        }
//                    }
//                }
//            }
//        });
//
//        mRefreshLayout = findViewById(R.id.refreshLayout);
//        mRefreshLayout.setOnRefreshListener(new OnRefreshListener() { //下拉刷新
//            @Override
//            public void onRefresh(RefreshLayout refreshlayout) {
//                getItemsDataHeaderPull();
//                refreshlayout.finishRefresh(2000/*,false*/);//传入false表示刷新失败
//            }
//        });
//
//        mRefreshLayout.setOnLoadMoreListener(new OnLoadMoreListener() { //上拉加载更多
//            @Override
//            public void onLoadMore(RefreshLayout refreshlayout) {
//                getItemsDataFooterPull();
//                refreshlayout.finishLoadMore(2000/*,false*/);//传入false表示加载失败
//            }
//        });
//        expor_btn = findViewById(R.id.item_expor_btn);
//        expor_btn.setOnClickListener(new View.OnClickListener() {
//            @Override
//            public void onClick(View view) {
//                String ids1 = ids.substring(0,ids.length()-1);
//                List<String> idLis = new ArrayList<>();
//                if(ids1.length()>1){
//                    String[] idLis1 = ids1.split(",");
//                    idLis.addAll(Arrays.asList(idLis1));
//                }else{
//                    idLis.add(ids1);
//                }
//                int count = 0;
//                if(idLis.size()>0){
//                    for (int i = 0; i < idLis.size(); i++) {
//                        Sends sen = new Sends();
//                        sen.setId(Integer.parseInt(idLis.get(i)));
//                        List<Sends> svlis = sendService.getSends(sen);
//                        if(svlis.size()>0){
//                            if(idLis.get(i).equals(String.valueOf(svlis.get(0).getId()))){
//                                int itemId = svlis.get(0).getItemId();
//                                String uid = svlis.get(0).getUid();
//                                SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
//                                String createTime = svlis.get(0).getCreateTime();
//                                String createTime1 = createTime.substring(0,10);
//                                List<Items> itlis =itemsService.getItems(new Items(itemId));
//                                String name = itlis.get(0).getName();
//                                List<Arrange> arrLis = arrangeService.getArrange(new Arrange(itemId));
//                                Integer types = arrLis.get(0).getDeviceType();
//                                String permutationMode = modeData[types];//添加采集模式
//                                String fileName = String.valueOf(itemId)+"-"+uid;
//                                String downName = name+"-"+itlis.get(0).getId()+"-"+idLis.get(i)+"-"+createTime1;
//                                String downNameNew = permutationMode+"-"+svlis.get(0).getCreateTime().replace(" ","_").replace(":","_");
//                                String downNameNew1 = permutationMode+"-"+svlis.get(0).getCreateTime().replace(" ","_").replace(":","_");
//                                String allDataName = name+"_"+permutationMode+"_"+createTime+".gz";
//                                //Boolean bool = FileDownUtil.downLoadFile(myContent,FileDownUtil.DOWN_NAME+fileName+".cvs",downName+".cvs",name);
//                                //Boolean bool = FileDownUtil.downLoadZipFile(myContent,FileDownUtil.DOWN_NAME+fileName,downName+".zip",downNameNew+".zip",name);//原始数据
//                               // Boolean bool1 = FileDownUtil.downLoadFile(myContent,FileDownUtil.DOWN_NAME+"RMS_"+fileName+"_"+permutationMode+"_"+createTime1+".csv",downName+".csv",name);//RMS数据
//                                // 读取内部存储沙盒文件列表
//                                List<File> internalFiles = getInternalFilesNew(myContent, fileName);
//                                // 将 File 对象转换为文件名（String）
//                                String[] fileNames = internalFiles.stream()
//                                        .map(File::getName)         // 获取文件名
//                                        // 或 .map(File::getPath)   // 获取完整路径
//                                        .toArray(String[]::new);    // 转换为 String 数组
//                                Log.d(TAG, "内部文件: " + internalFiles.toString());
//
//
//                                try {
//                                    FileDownUtil.mergeByConcatenate(fileNames,fileName, DOWN_NAME + fileName+"/"+allDataName);
//                                } catch (IOException e) {
//                                    throw new RuntimeException(e);
//                                }
//                                Boolean bool2 = FileDownUtil.downLoadFile(myContent,FileDownUtil.DOWN_NAME+fileName+"/"+allDataName,permutationMode+"-"+createTime1+".gz",name);//RMS数据
//                                if(bool2){
//                                    count+=1;
//                                }
//                            }
//
//                        }
//                    }
//                }
//
//                if(count == idLis.size()){
//                    Toast.makeText(myContent, "导出成功！", Toast.LENGTH_SHORT).show();
//                }else{
//                    //Toast.makeText(myContent, "导出失败！", Toast.LENGTH_SHORT).show();
//                    Toast.makeText(myContent, "导出成功！", Toast.LENGTH_SHORT).show();
//                }
//
//            }
//        });
//
//        listView = (ListView) findViewById(R.id.send_list_view);
//
//        Items items = null;
//        try {
//            items = findSelectItem();
//            if(null != items){
//                Device dev = new Device();
//                dev.setItemId(String.valueOf(items.getId()));
//                //int count = getDeviceLisAllCount();
//                int count =sendLisAll.size();
//                if(count>0){
//                    allCheak.setOnClickListener(new  View.OnClickListener(){
//                        @Override
//                        public void onClick(View view) {
//                            if(checkSta){
//                                btnNoList();
//                                allCheak.setText("全选");
//                            }else{
//                                btnSelectAllList();
//                                allCheak.setText("全不选");
//                            }
//
//                        }
//                    });
//                }
//
//            }
//        }catch (Exception e){
//            e.printStackTrace();
//        }
//
//    }
//    public void refresh() { onCreate(null); }
//    public int getDeviceLisAllCount() {
//        Resources res =getResources();
//        String[] modeData=res.getStringArray(R.array.modeData);
//        SendsService sendService = new SendsService();
//        Items item = findSelectItem();
//        List<SendVo> send = sendService.getAll((currentPage * pageSize), pageSize,item.getId(),0);
//        return send.size();
//    }
//
//    public void initText(){
//
//    }
//    public void initData(){
//
//    }
//    private Items findSelectItem(){
//        itemsService = new ItemsService();
//        Items items = new Items();
//        Items items1 = new Items();
//        items.setStatus(1);
//        List<Items> lis = null;
//
//        try {
//            lis = itemsService.getItems(items);
//            items1 = lis.get(0);
//        }catch (Exception e){
//            e.printStackTrace();
//        }
//        return items1;
//    }
//    private Integer findItemCount() {
//        itemsService = new ItemsService();
//        List<Items> lis = itemsService.getItems(new Items());
//        return lis.size();
//    }
//    private List<SendVo> performJoinQuery(String itemId) {
//        int limit = (currentPage-1)*pageSize;
//        String type = "0";
//        SQLiteDatabase db = dbHelper.getReadableDatabase();
//
//        // SQL语句：查询用户表和订单表，根据用户ID关联
//        Cursor cursor = db.query("tb_sends send left join  tb_items ite on ite.id = send.item_id left join tb_device dev on dev.item_id = ite.id left join tb_arrange arr on arr.item_id = send.item_id ",
//                new String[]{"send.id, ite.name, send.item_id, ite.operator, dev.sn as deviceId, send.repeat_num ,send.voltage as voltages, send.create_time, send.send_frequency, send.uid, arr.device_type"},
//                "send.status = 0 and send.type = ? and ite.id = ?",
//                new String[]{type, itemId},"send.id","","send.id DESC", String.valueOf(limit)+","+String.valueOf(pageSize));
//        System.out.println(cursor.getCount());
//        List<SendVo> lis = new ArrayList<>();
//        // 遍历结果集
//        while (cursor.moveToNext()) {
//            SendVo sendVo = new SendVo();
//            String id = cursor.getString(0);
//            sendVo.setId(id);
//            String name = cursor.getString(1);
//            sendVo.setName(name);
//            int itemId1 = cursor.getInt(2);
//            sendVo.setItemId(itemId1);
//            String operator = cursor.getString(3);
//            sendVo.setOperator(operator);
//            String deviceId = cursor.getString(4);
//            sendVo.setDeviceId(deviceId);
//            String repeat_num = cursor.getString(5);
//            sendVo.setRepeatNum(repeat_num);
//            String voltages = cursor.getString(6);
//            sendVo.setVoltages(voltages);
//            String create_time = cursor.getString(7);
//            sendVo.setCreateTime(create_time);
//            String send_frequency = cursor.getString(8);
//            sendVo.setSendFrequency(send_frequency);
//            String uid = cursor.getString(9);
//            sendVo.setUid(uid);
//            int device_type = cursor.getInt(10);
//            sendVo.setDeviceType(device_type);
//            lis.add(sendVo);
//
//            // 处理查询结果
//            // ...
//        }
//
//        cursor.close();
//        db.close();
//        return lis;
//    }
//    public void updataData(){
//        sendLisAll = new ArrayList<SendVo>();
//        currentPage = 1;
//        getDeviceLisAll();
//        myAdapter.cleckAll();
//    }
//    public void getDeviceLisAll() {
//        Resources res =getResources();
//        String[] modeData=res.getStringArray(R.array.modeData);
//        String[] freqData=res.getStringArray(R.array.freqData);
//        String[] repeatData=res.getStringArray(R.array.repeatCount);
//        String[] valtageData=res.getStringArray(R.array.valtageData);
//
//        Items item = findSelectItem();
//        //List<SendVo> send = sendService.getAll((currentPage * pageSize), pageSize,item.getId(),0);
//        List<SendVo> send = performJoinQuery(String.valueOf(item.getId()));
//        currentPage+=1;
//        sendLisAll.addAll(send);
//        //创建一个simpleAdapter
//        myAdapter = new SendReceiveAdapter(SendReceiveListBeforDianJIActivity.this, sendLisAll,
//                R.layout.send_receive_list_item,modeData,freqData,repeatData,valtageData,this);
//        listView = findViewById(R.id.send_list_view);
//        listView.setAdapter(myAdapter);
//    }
//    private void getItemsDataHeaderPull() {
//        Resources res =getResources();
//        String[] modeData=res.getStringArray(R.array.modeData);
//        String[] freqData=res.getStringArray(R.array.freqData);
//        String[] repeatData=res.getStringArray(R.array.repeatCount);
//        String[] valtageData=res.getStringArray(R.array.valtageData);
//        Items item = findSelectItem();
//        currentPage =1;
//        sendLisAll= null;
//        sendLisAll = new ArrayList<SendVo>();
//        //List<SendVo> send = sendService.getAll((currentPage * pageSize), pageSize,item.getId(),0);
//        List<SendVo> send = performJoinQuery(String.valueOf(item.getId()));
//        currentPage+=1;
//        sendLisAll.addAll(send);
//        //创建一个simpleAdapter
//        myAdapter = new SendReceiveAdapter(SendReceiveListBeforDianJIActivity.this, sendLisAll, R.layout.send_receive_list_item,modeData,freqData,repeatData,valtageData,this);
//        listView = findViewById(R.id.send_list_view);
//        listView.setAdapter(myAdapter);
//
//    }
//
//    private void getItemsDataFooterPull() {
//        Resources res =getResources();
//        String[] modeData=res.getStringArray(R.array.modeData);
//        String[] freqData=res.getStringArray(R.array.freqData);
//        String[] repeatData=res.getStringArray(R.array.repeatCount);
//        String[] valtageData=res.getStringArray(R.array.valtageData);
//        Items item = findSelectItem();
//        //List<SendVo> deviceLis = sendService.getAll((currentPage * pageSize), pageSize,item.getId(),0);
//        List<SendVo> deviceLis = performJoinQuery(String.valueOf(item.getId()));
//        if(deviceLis.size()>0){
//            sendLisAll.addAll(deviceLis);
//            //创建一个simpleAdapter
//            myAdapter = new SendReceiveAdapter(SendReceiveListBeforDianJIActivity.this, sendLisAll, R.layout.send_receive_list_item,modeData,freqData,repeatData,valtageData,this);
//            currentPage ++;
//            myAdapter.notifyDataSetChanged();
//        }
//    }
//
//    /**
//     * 全选
//     * @param
//     */
//    public void btnSelectAllList() {
//
//        int count = listView.getCount();
//        for (int i = 0; i < count; i++) {
//            View lin = listView.getChildAt(i);
////
//            checkBox = lin.findViewById(R.id.send_list_items_checkbox);
//
//            if(checkBox != null){
//                checkBox.setChecked(true);
//            }
//            checkSta = true;
//            did = lin.findViewById(R.id.did);
//            String id = (String) did.getText();
//            ids += id+",";
//
//        }
//    }
//
//    /**
//     * 全不选
//     * @param
//     */
//    public void btnNoList() {
//
//        int count = listView.getCount();
//        for (int i = 0; i < count; i++) {
//            View lin = listView.getChildAt(i);
////            lin.setFocusable(false);
////
////            checkBox = lin.findViewById(R.id.send_list_items_checkbox);
////            if(checkBox != null){
////                checkBox.setChecked(false);
////            }
//
//            checkSta = false;
//            did = lin.findViewById(R.id.did);
//            String id = (String) did.getText();
//            ids += id+",";
//            System.out.println("----ids----"+ids);
//        }
//        updataData();
//    }
//
//    /**
//     * 接口方法，响应ListView按钮点击事件
//     */
//    @Override
//    public void clickListener(View v) {
//        System.out.println("---------------------------v= "+v.getId());
//        int id = v.getId();
//        if(id>0){
//            idlis.add(id);
//        }else {
//            String id1 = String.valueOf(id).substring(1);
//            for (int i = 0; i < idlis.size(); i++) {
//                if(idlis.get(i) == Integer.parseInt(id1)){
//                    idlis.remove(i);
//                }
//            }
//
//        }
//        System.out.println("---------------------------idlis= "+idlis);
////        if(idlis.size()==listView.getCount()){
////            send_items_checkbox.setChecked(true);
////            checkSta = true;
////        } else if (idlis.size()== 0) {
////            send_items_checkbox.setChecked(false);
////            checkSta = false;
////        }
////        if(idlis.size()==listView.getCount()){
////            send_items_checkbox.setChecked(true);
////            checkSta = true;
////        } else {
////            send_items_checkbox.setChecked(false);
////            checkSta = false;
////        }
//        ids = "";
//        for (int i = 0; i < idlis.size(); i++) {
//            ids += idlis.get(i)+",";
//        }
//    }
//
//    @Override
//    public boolean clickRemoveListener(int position) {
//        removeItemsDataUpdata(position);
//        updateItem(position);
//        return true;
//    }
//    private void removeItemsDataUpdata(int position) {
//        Resources res =getResources();
//        String[] modeData=res.getStringArray(R.array.modeData);
//        String[] freqData=res.getStringArray(R.array.freqData);
//        String[] repeatData=res.getStringArray(R.array.repeatCount);
//        String[] valtageData=res.getStringArray(R.array.valtageData);
//        Items item = findSelectItem();
//        List<SendVo> deviceLis = sendService.getAll((currentPage * 1), 1,item.getId(),0);
//        if(deviceLis.size()>0){
//            sendLisAll.remove(position);
//            sendLisAll.addAll(deviceLis);
//            //创建一个simpleAdapter
//            myAdapter = new SendReceiveAdapter(SendReceiveListBeforDianJIActivity.this, sendLisAll, R.layout.send_receive_list_item,modeData,freqData,repeatData,valtageData,this);
//            //myAdapter.notifyDataSetChanged();
//        }
//    }
//    private void updateItem(int position) {
//        /**第一个可见的位置**/
//        int firstVisiblePosition = listView.getFirstVisiblePosition();
//        /**最后一个可见的位置**/
//        int lastVisiblePosition = listView.getLastVisiblePosition();
//
//        /**在看见范围内才更新，不可见的滑动后自动会调用getView方法更新**/
//        if (position >= firstVisiblePosition && position <= lastVisiblePosition) {
//            /**获取指定位置view对象**/
//            View view = listView.getChildAt(position - firstVisiblePosition);
//            myAdapter.getView(position, view, listView);
//        }
//
//    }
//}